#include <linux/init.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/module.h>
#include <linux/kernel.h>

MODULE_AUTHOR("Arkins");
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("Test kernel module.");

#define TEST_LABLE "Arkins"

#define test_log_info(fmt, ...) \
    printk(KERN_INFO TEST_LABLE "[INFO ][%s %d]: " fmt "\n", __func__, __LINE__, ##__VA_ARGS__)

#define test_log_error(fmt, ...) \
    printk(KERN_ERR  TEST_LABLE "[INFO ][%s %d]: " fmt "\n", __func__, __LINE__, ##__VA_ARGS__)


static int __init init_test(void)
{
    printk(KERN_INFO "KERN_INFOArkins: Start Test.\n");
    test_log_info("Hello World!\n");
    test_log_error("Hello World!\n");
    return 0;
}

static void __exit exit_test(void)
{
    printk(KERN_INFO "Arkins: End Test.\n");
}

module_init(init_test)
module_exit(exit_test)
